#ifndef PIEZA_H_
#define PIEZA_H_
#include "Lista.h"
#include "Posicion.h"
#include "Color.h"
#include "Imprimible.h"

class Tablero;

class Pieza: public Imprimible {
private:
	tColor color;
	Posicion posicion;

public:
	Pieza(tColor, Posicion);
	virtual ~Pieza();
	const tColor getColor() const;
	Posicion getPosicion() const;
    void setPosicion(Posicion);
    friend std::ostream &operator<<(std::ostream &, Pieza &);
    virtual Lista* movimientosPosibles(const Tablero& tablero) const = 0;

protected:
    virtual void imprimir(std::ostream&) = 0;
};
#endif /* PIEZA_H_ */
